<?php
/**
 * PrynLib
 * @copyright 2007-2009 Prynel
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @category libPrynel
 * @package Util
 * @version $Revision: 80 $
 */

/**
 * Classe bench. Mesure de performance de script php avec possibilité d'ajout de flag intermédiaire.
 * 
 * @category libPrynel
 * @package Util
 * @version 1.0.1 
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @copyright  2007-2009 Prynel
 * 
 */
class Util_Bench // Amel bench ? ==>[]
{
	/**
	 * Temps de début.<br />Valeur par défaut : 0
	 * @var int
	 * @access private
	 */
	private $start;
	
	/**
	 * Tableau de résultat.
	 * @var array
	 * @access public
	 */
	private $resultat;
	
	/**
	 * Constructeur.
	 * Initialisation des valeurs
	 * 
	 */
	public function __construct()
	{
		$this->start =0;
		$this->resultat = array();
	}
	
	/**
	 * Départ.
	 * Lance le début du calcul de temps
	 *
	 */
	
	public function start()
	{
		$this->start=self::get_micro();
	}
	
	/**
	 * Prend un temps intermédiaire.
	 *
	 * @param $nom Nom du temps intermédiaire
	 */
		
	public function add_inter($nom)
	{
		$top= self::get_micro() - $this->start;
		$this->resultat[$nom]=$top;
	}
	
	/**
	 * Arrete le calcul.
	 *
	 */	
	public function stop()
	{
		$end= self::get_micro() - $this->start;
		$this->resultat[total]=$end;
	}
	
	/**
	 * Donne les tableau de résultat.
	 *
	 * @return Tableau de résultats.
	 */
	public function result()
	{
		return $this->resultat;
	}
	
	/**
	 * Donne les miliseconde
	 * @access private
	 * @return Float temps en milisecondes
	 */	
	private function get_micro()
	{
		$temps = microtime();
		$temps = explode(' ', $temps);
		$temps = $temps[1] + $temps[0];
		return (float)$temps;
	}
	
	/**
	 * Destructeur
	 */
	function __destruct() 
	{
   }
}
?>